package com.jeomo.masterdata.starter.util;

import cn.hutool.core.util.StrUtil;

/**
 * <h3>jeomo</h3>
 * <p>工具类方法</p>
 *
 * @author : 崔贺
 * @date : 2020-08-31 16:16
 **/
public class CommonUtil {
    /**
     * 为空时的流水号
     */
    public final static String SERIALS_NUMBER = "000";

    /**
     * strNum=100
     * return 101
     * 字符串数字加1
     */
    public static String addOne(String strNum) {
        //根据不是数字的字符拆分字符串
        String[] strs = strNum.split("[^0-9]");
        //取出最后一组数字
        String numStr = strs[strs.length - 1];
        //如果最后一组没有数字(也就是不以数字结尾)，抛NumberFormatException异常
        if (numStr != null && numStr.length() > 0) {
            //取出字符串的长度
            int n = numStr.length();
            //将该数字加一
            int num = Integer.parseInt(numStr) + 1;
            String added = String.valueOf(num);
            n = Math.min(n, added.length());
            //拼接字符串
            return strNum.subSequence(0, strNum.length() - n) + added;
        } else {
            throw new NumberFormatException();
        }
    }

    /**
     * @param anyCode      例如：组织号，门店号....
     * @param recentlyCode 查询到最新的业务code
     * @description: 拼接code  业务号+流水号   如：门店号（组织号+流水号）
     * @return: java.lang.String
     * @author: 崔贺
     * @time: 2020/8/31 17:33
     */
    public static String spliceCode(String anyCode, String recentlyCode) {
        String code;
        if (StrUtil.isEmpty(recentlyCode)) {
            code = anyCode + CommonUtil.SERIALS_NUMBER;
        } else {
            code = addOne(recentlyCode);
        }
        return code;
    }

}
